// pages/login/login.js
const util = require('../../utils/util.js')
const app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    /*  */
    showOpenSetting: true,  //打开openSetting按钮
    /*  */
    hideGetPN: true,
    /*  */
    userInfo_chezhu: {},
    /*  */
    getVcode: {
      initText: '获取验证码',
      time: 61,
      djsing: false,
      mobile: '', //手机号码
      code: ''  //验证码
    },
    /*  */
    djs: null
  },
  /* 不允许授权后的openSetting */
  getOpenSettingData(e){
    console.log(e)
    wx.getSetting({
      withSubscriptions: true,
      success: res=>{
        console.log(res)
        if(res.subscriptionsSetting.mainSwitch){
          this.setData({
            showOpenSetting: false
          })
        }
      },
      fail: err=>{

      }
    })
  },
  /* 授权订阅消息 */
  SubscribeMessage: function () {
    let regx = /^1\d{10}$/g
    if (!regx.test(this.data.getVcode.mobile)) {
      wx.showToast({
        icon: 'none',
        title: '请输入手机号码',
      })
      return
    }
    if(!this.data.getVcode.code||this.data.getVcode.code.length<6){
      wx.showToast({
        icon:'none',
        title:'请输入验证码'
      })
      return
    }
    wx.requestSubscribeMessage({
      tmplIds: [this.data.userInfo_chezhu.subScribeMessageCode], // 此处可填写多个模板 ID，但低版本微信不兼容只能授权一个
      success: res => {
        console.log(res)
        if (res[this.data.userInfo_chezhu.subScribeMessageCode] == 'accept') {
          wx.showToast({
            title: '开启订阅消息成功'
          })
          this.setData({
            showOpenSetting:true
          })
          //验证手机
          this.confirmBindPhone().then(()=>{
            //跳转至首页
            wx.switchTab({
              url:'/pages/index/index'
            })
          })
        } else {
          /*  */
          this.setData({
            showOpenSetting:false
          })
          wx.showModal({
            title: '提示',
            content: '请允许订阅，方便获取消息通知！',
            showCancel: false,
            confirmColor: app.globalData.modalConfirmColor
          })
        }
      },
      fail: err => {
        console.log(err)
        this.setData({
          showOpenSetting:false
        })
        /* wx.showModal({
          title: '提示',
          content: '开启订阅消息通知失败???',
          showCancel: false,
          confirmColor: app.globalData.modalConfirmColor
        }) */
      }
    })
  },
  /* 获取短信验证码 */
  getValidateCode: function () {
    let regx = /^1\d{10}$/g
    if (!regx.test(this.data.getVcode.mobile)) {
      wx.showToast({
        icon: 'none',
        title: '请输入正确的手机号码',
      })
      return
    }
    if (this.data.getVcode.djsing) {
      wx.showToast({
        icon: 'none',
        title: '短信已发送，请验证完成再获取',
      })
      return
    }
    wx.showLoading({
      title: '获取验证码',
      mask: true
    })
    //djs
    this.setData({
      djs: app.globalData.djs.call(this, 'getVcode', this.data.getVcode)
    })
    wx.request({
      url: app.globalData.Url + '/api/getMgsCode',
      method: 'POST',
      header: this.data.userInfo_chezhu.header,
      data: util.json2Form({
        mobile: this.data.getVcode.mobile
      }),
      success: res => {
        //判断token是否过期
        if(app.globalData.check_token(res.data.code))return new Promise((resolve,reject)=>{})
        wx.showToast({
          title: '验证码已发送',
        })
        //
        this.data.djs.startDjs.call(this)
      },
      fail: err => {

      },
      complete: () => {
        wx.hideLoading()
      }
    })
  },
  /* 输入验证码 */
  getValidateDXcode: function (e) {
    this.setData({
      'getVcode.code': e.detail.value
    })
    if (this.data.getVcode.code.length > 6) {
      this.setData({
        'getVcode.code': e.detail.value.substr(0, 6)
      })
    }
  },
  /* 输入手机号码 */
  getVphone: function (e) {
    this.setData({
      'getVcode.mobile': e.detail.value
    })
    if (this.data.getVcode.mobile.length > 11) {
      this.setData({
        'getVcode.mobile': e.detail.value.substr(0, 11)
      })
    }
  },
  /* 验证短信验证码 */
  confirmBindPhone: function(){
    wx.showLoading({
      title:'登录中...',
      mask:true
    })
    return new Promise((resolve, reject)=>{
      wx.request({
        url: app.globalData.Url + '/api/checkMobileCode',
        method: 'POST',
        header: this.data.userInfo_chezhu.header,
        data: util.json2Form({
          code:this.data.getVcode.code,
          type:'0'
        }),
        success: res => {
          console.log(res)
          //判断token是否过期
          if(app.globalData.check_token(res.data.code))return new Promise((resolve,reject)=>{})
          if(res.data.code=='1'){
            wx.showToast({
              title: ''+res.data.msg,
            })
            //
            this.data.djs&&this.data.djs.clearDjs.call(this)
            //
            this.setData({
              'userInfo_chezhu.mobile': res.data.body.mobile
            })
            //信息存缓存
            wx.setStorageSync('userInfo_chezhu', this.data.userInfo_chezhu)
            //进入首页
            wx.switchTab({
              url: '/pages/index/index',
            })
            resolve()
          }else{
            //
            this.data.djs&&this.data.djs.clearDjs.call(this)
            wx.showModal({
              title:'提示',
              content: ''+res.data.msg,
              showCancel:false
            })
            //
            this.setData({
              showOpenSetting:true
            })
          }
        },
        fail: err => {
          wx.showToast({
            icon:'none',
            title: '验证手机号码失败',
          })
          //
          this.setData({
            showOpenSetting:true
          })
        },
        complete: ()=>{
          wx.hideLoading()
        }
      })
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //获取用户信息
    this.setData({
      userInfo_chezhu: app.globalData.get_userInfo()
    })
    console.log(this.data.userInfo_chezhu)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})